package com.zmn.oms.business.interfaces.report;

import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.entity.report.EsReportPayQuery;
import com.zmn.oms.model.entity.report.ReportPayQuery;
import com.zmn.oms.model.vo.report.ReportPayDetailVO;
import com.zmn.oms.model.vo.report.ReportPayVO;

import java.util.List;

/**
 * @author ：SongWeidong
 * @date ：2021/5/10 17:15
 * @description：支付报表
 */
public interface ReportPayBService {

    /**
     * 订单收款汇总
     * @param query
     * @return
     */
    List<ReportPayVO> listAmountSummaryByQuery(EsReportPayQuery query);

    /**
     * 订单退款汇总
     * @param query
     * @return
     */
    List<ReportPayVO> listRefundAmountSummaryByQuery(EsReportPayQuery query);

    /**
     * 支付明细
     * @param query
     * @return
     */
    List<ReportPayDetailVO> listPayDetailByQuery(EsReportPayQuery query);

    /**
     * 创建导出任务
     * @param query
     */
    void buildExportTask(EsReportPayQuery query) throws OmsBaseException;

    /**
     * 异步导出
     * @param query
     */
    void asyncExportPayListByQuery(EsReportPayQuery query);

}
